/**
 * js分页对象
 */
var pager = function () {

    var totalPages = 0;     //总页数
    var totalElements = 0;  //总条数
    var size = 10;          //页面大小
    var number = 0;           //当前页面

    var formId = '';
    var url = '';
    var callback = null;

    /**
     * 1、初始分页对象
     * @param btnNum 数字按钮个数
     */
    function init() {
        totalPages      = parseInt($("#pageParam #totalPages").val());
        totalElements   = parseInt($("#pageParam #totalElements").val());
        size            = parseInt($("#pageParam #size").val());
        number          = parseInt($("#pageParam #number").val());

        //1、根据总页算出按钮的范围
        var offset = parseInt(number/5);
        var startVal = offset*5;
        var endVal = (offset+1)*5;

        for(var i = startVal,k = 0 ;i<endVal ;i++,k++){
            $("#page"+k).html(i+1);
            $("#page"+k).data("page",i);
            //禁用范围以外的按钮
            //如果页大于总页数--禁用
            if(i+1>totalPages){
                $("#page"+k).closest("li").addClass("disabled");
            }else{
                $("#page"+k).click(function () {
                    var page = $(this).data("page");
                    var pageParam = "page="+page+"&size="+size;
                    search(pageParam);
                });
            }
            //如果等于当前页，选中
            if(i==number){
                $("#page"+k).closest("li").addClass("active");
            }
        }
        //如果页数为最后一页，禁用下一页和尾页
        if(number+1>=totalPages){
            $("#nextPage").closest("li").addClass("disabled");
            $("#bottomPage").closest("li").addClass("disabled");
        }else{
            $("#nextPage").click(function () {
                var pageParam = "page="+(number+1)+"&size="+size;
                search(pageParam);
            });
            $("#bottomPage").click(function () {
                var pageParam = "page="+(totalPages-1)+"&size="+size;
                search(pageParam);
            });
        }
        //如果页数尾最前5页，禁用上一页和首页
        if(number==0){
            $("#provPage").closest("li").addClass("disabled");
            $("#topPage").closest("li").addClass("disabled");
        }else{
            $("#provPage").click(function () {
                var pageParam = "page="+(number-1)+"&size="+size;
                search(pageParam);
            });
            $("#topPage").click(function () {
                var pageParam = "page=0&size="+size;
                search(pageParam);
            });
        }
    }

    function setData(v1,v2,v3) {
        formId = v1;
        url = v2;
        callback = v3;
    }
    /**
     * 表单查询，表单异步提交查询页面
     * @param formId
     * @private
     */
    function search(pageParam) {
        var v1 = formId,v2=url,v3=callback;
        var formObj = $("#"+v1);
        var params = formObj.serialize();
        var tbody = $("tbody",formObj);
        if(typeof url=="string" && url!=null && url.length>0){
            v2 = transferUrl(v2) + " tr";
        }else{
            v2 = formObj.attr("action")  + " tr";
        }
        if(pageParam){
            params = params + "&" + pageParam;
        } else{
            //如果没有传递参数，则获取系统系统内部（默认）参数
            params = params + "&page="+number+"&size="+size;
        }
        tbody.load(v2,params,function () {
            init();
            if(typeof v3=='function'){
                v3();
            }
        });
    }

    return {
        /**
         * 分页查询
         * @param v1 formId 表单id
         * @param v2 url    提交地址
         * @param v3 callback 查询成功后回调函数
         */
        searchPage : function (v1,v2,v3) {
            setData(v1,v2,v3);
            search();
        }
    }
}();